
package cg.server.game;

import java.util.ArrayList;

/**
 * Reihe <br> <br> Die Klasse Reihe erstellt eine neue Reihenkarte. Einer
 * Reihenkarte kann eine Farbkarte hinzugefügt werdern oder die Reihe kann mit
 * der Ihre zugeteilten Farbkarten aufgenommen werden
 *
 * @author Christian Friedli
 * @version 1.0
 */
public class Reihe {

    /**
     * Reihenliste
     */
    ArrayList<Farbkarte> Reihe = new ArrayList<Farbkarte>();
    /**
     * Reihenstatus
     */
    boolean reiheAktiv = false;

    /**
     * Reihe Standardkonstruktor. <br> <br> Von diesem müssen 4 Instanzen
     * erstellt werden (da 4 Spieler)
     */
    public Reihe(ArrayList Reihe, boolean reiheAktiv) {
        this.Reihe = Reihe;
        this.reiheAktiv = reiheAktiv;
    }

    /**
     * Leerer Reihenkonstruktor.
     */
    public Reihe() {
        Reihe = Reihe;
        reiheAktiv = false;
    }

    /**
     * Abfrage, ob die Reihe voll ist bzw. bereits drei Farbkarten enthält
     *
     * @return boolean Reihe voll oder nicht
     */
    public boolean ReiheVoll() {
        if (Reihe.size() >= 3) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * fügt der Reihe eine Karte hinzu
     *
     * @param Farbkarte
     */
    public void karteHinzufügen(Farbkarte k) {
        Reihe.add(k);
    }

    /**
     * Gibt die Farbkarte der Reihe an Postion i zurück
     *
     * @param Position auf Reihe
     * @return Karte an bestimmter Stelle
     */
    public Farbkarte karteVonReihe(int i) {
        return Reihe.get(i);
    }

    /**
     * Setter um Reihe zu aktivieren
     */
    public void ReiheAktivieren() {
        reiheAktiv = true;
    }

    /**
     * Getter für Reihengrösse
     *
     * @return Groesse der Reihe
     */
    public int reiheGroesse() {
        return Reihe.size();
    }

    /**
     * Methode um alle Karten einer Reihe zu löschen und inakitv zu setzten
     */
    public void alleKartenLöschen() {
        Reihe.clear();
        reiheAktiv = false;
    }
}
